import axios from 'axios'; // 引入axios

axios.defaults.baseURL = process.env.BASE_URL;// api 的 base_url

axios.defaults.timeout = 6000;//超时时间

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';//设置请求头

axios.defaults.withCredentials = true;//跨域

// 响应拦截器
axios.interceptors.response.use(
    res => {
        // 如果返回的状态码为200，说明接口请求成功，可以正常拿到数据     
        // 否则的话抛出错误
        if (res.status === 200) {
            return Promise.resolve(res);
        } else {
            return Promise.reject(res);
        }
    }
);

/**
 * get方法，对应get请求
 * @param url [请求的url地址]
 * @param params [请求时携带的参数]
 */
export function get(url: string, params: any) {
    return new Promise((resolve, reject) => {
        axios.get(url, {
            params: params
        }).then(res => {
            resolve(res.data);
        }).catch(err => {
            reject(err.data)
        })
    });
}

/** 
 * post方法，对应post请求 
 * @param {String} url [请求的url地址] 
 * @param {Object} params [请求时携带的参数] 
 */
export function post(url: string, params: any) {
    return new Promise((resolve, reject) => {
        axios.post(url, params)
            .then(res => {
                resolve(res.data);
            })
            .catch(err => {
                reject(err.data)
            })
    });
}